﻿using System.Collections.ObjectModel;
using Renci.Data.Interop.OpenGIS.Ows;

namespace Renci.Data.Interop.OpenGIS.Wfs
{
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.3038")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.opengis.net/wfs")]
    public class FeatureTypeType
    {
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("Name")]
        public System.Xml.XmlQualifiedName Name { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("Title")]
        public string Title { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("Abstract")]
        public string Abstract { get; set; }

        private Collection<KeywordsType> _keywords = new Collection<KeywordsType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("Keywords")]
        public Collection<KeywordsType> Keywords
        {
            get
            {
                return this._keywords;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("DefaultSRS", typeof(string), DataType = "anyURI")]
        [System.Xml.Serialization.XmlElementAttribute("NoSRS", typeof(FeatureTypeTypeNoSRS))]
        [System.Xml.Serialization.XmlElementAttribute("OtherSRS", typeof(string), DataType = "anyURI")]
        [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")]
        public object[] Items { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("ItemsElementName")]
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public ItemsChoiceType13[] ItemsElementName { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("Operation", IsNullable = false)]
        [System.Xml.Serialization.XmlArrayAttribute("Operations", IsNullable = false)]
        public Collection<OperationType> Operations { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("OutputFormats")]
        public OutputFormatListType OutputFormats { get; set; }

        private Collection<WGS84BoundingBoxType> _wGS84BoundingBoxes = new Collection<WGS84BoundingBoxType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("WGS84BoundingBox")]
        public Collection<WGS84BoundingBoxType> WGS84BoundingBoxes
        {
            get
            {
                return this._wGS84BoundingBoxes;
            }
        }

        private Collection<MetadataURLType> _metadataUrls = new Collection<MetadataURLType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("MetadataURL")]
        public Collection<MetadataURLType> MetadataUrls
        {
            get
            {
                return this._metadataUrls;
            }
        }
    }
}
